package com.taotao.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.taotao.common.pojo.EasyUIDataGridResult;
import com.taotao.common.pojo.TaotaoResult;
import com.taotao.common.utils.IDUtils;
import com.taotao.mapper.TbItemDescMapper;
import com.taotao.mapper.TbItemMapper;
import com.taotao.pojo.TbItem;
import com.taotao.pojo.TbItemDesc;
import com.taotao.pojo.TbItemExample;
import com.taotao.service.ItemService;

@Service
public class ItemServiceImpl implements ItemService {

	//商品mapper
	@Autowired
	private TbItemMapper itemMapper;
	
	//商品描述mapper
	@Autowired
	private TbItemDescMapper itemDescMapper;
	
	//获取全部商品   展示列表
	@Override
	public EasyUIDataGridResult getItemList(Integer page, Integer rows) {
		// 利用pagehelper工具处理分页
		PageHelper.startPage(page, rows);
		//获取条件对象
		TbItemExample example = new TbItemExample();
		//查询所有商品
		List<TbItem> list = itemMapper.selectByExample(example);
		//创建结果返回对象 EasyUIDataGridResult
		EasyUIDataGridResult result = new EasyUIDataGridResult();
		//创建pageinfo工具类对象 对返回的数据封装到result中
		PageInfo<TbItem> pageInfo = new PageInfo<>(list);
		//设置参数
		result.setTotal(pageInfo.getTotal());
		result.setRows(pageInfo.getList());
		
		return result;
	}

	//添加商品和描述
	@Override
	public TaotaoResult insertItem(TbItem tbItem, String desc) {
		// 商品插入
		//生成商品id
		long itemId = IDUtils.genItemId();
		tbItem.setId(itemId);
		//设置创建时间和更新时间
		Date date = new Date();
		tbItem.setCreated(date);
		tbItem.setUpdated(date);
		//设置商品的状态 1-为正常  2-为下架  3-为删除
		tbItem.setStatus((byte) 1);
		//插入商品操作
		itemMapper.insert(tbItem);
		
		//商品描述
		TbItemDesc itemDesc = new TbItemDesc();
		//设置id
		itemDesc.setItemId(itemId);
		//设置描述
		itemDesc.setItemDesc(desc);
		//设置时间
		itemDesc.setCreated(date);
		itemDesc.setUpdated(date);
		//执行描述插入
		itemDescMapper.insert(itemDesc);
		
		//执行成功返回taotaoresult的ok方法
		return TaotaoResult.ok();
	}

}
